1954D - Colored Balls - CodeForces Solution


combinatorics dp greedy math sortings

Please click on ads to support us..

Python Code:

from math import ceil
MOD = 998244353
N = 5000

n = int(input())
a = [int(x) for x in input().split()]

a.sort()


dp = [0] * (N + 1)

ans = 0
dp[0] = 1
for i in range(n):
    for j in range(N - a[i], - 1, -1):
        dp[j + a[i]] += dp[j]
        dp[j + a[i]] %= MOD


for i in range(N + 1):
    ans += ceil(i / 2) * dp[i]

for i in range(n):
    for j in range(a[i]):
        ans += dp[j] * (a[i] - ceil((j + a[i]) / 2))
        ans %= MOD

print(ans)


Comments

Submit
0 Comments
More Questions

450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math
832A - Sasha and Sticks
292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols
1213A - Chips Moving
490A - Team Olympiad
233A - Perfect Permutation
1360A - Minimal Square
467A - George and Accommodation
893C - Rumor
227B - Effective Approach
1534B - Histogram Ugliness
1611B - Team Composition Programmers and Mathematicians
110A - Nearly Lucky Number
1220B - Multiplication Table
1644A - Doors and Keys
1644B - Anti-Fibonacci Permutation
1610A - Anti Light's Cell Guessing
349B - Color the Fence
144A - Arrival of the General